//
//  FHStatusCell.swift
//  FHweibo
//
//  Created by 张嵩雷 on 16/4/14.
//  Copyright © 2016年 feng. All rights reserved.
//

import UIKit



class FHStatusCell: UITableViewCell {
    
    //微博模型
    var status: FHStatus? {
        didSet {
            // 当控制器给cell设置模型后,来做操作
            // 将微博模型传递给originalView
            originalView.status = status
            
        }
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
        
        //设置cell的背景颜色
        backgroundColor = UIColor(white: 237 / 255.0, alpha: 1)
        
        prepareUI()
        
    }
    
    private func prepareUI() {
        
        //1.添加子控件
        contentView.addSubview(originalView)
        contentView.addSubview(bottomView)
        
        //2.添加约束
        originalView.snp_makeConstraints { (make) -> Void in
            make.leading.trailing.equalTo(contentView)
            //顶部有10的间距
            make.top.equalTo(contentView).offset(10)
            // 子控件的高度随机
            // 高度参照子控件的高度
            //            make.height.equalTo(Int(arc4random_uniform(200)) + 50)
        
        }
        
        ///bottomView
        bottomView.snp_makeConstraints { (make) -> Void in
            make.leading.trailing.equalTo(contentView)
            make.top.equalTo(originalView.snp_bottom)
            make.height.equalTo(37)
            
        }
        
        // cell的高度根据里面子控件的约束来自动调整
        // 3.cell的子控件约束要正确,还需要约束contentView的约束(最主要的是高度约束),系统会让cell取contentView的高度
        contentView.snp_makeConstraints { (make) -> Void in
            //contentView的约束参照cell
            make.leading.top.trailing.equalTo(self)
            //contentView的高度不能参照cell,要参照子空间
            make.bottom.equalTo(bottomView)
        }
        
    }
    
    
    //MARK: 懒加载
    ///原创的view
    private lazy var originalView: FHStatusOriginalView = FHStatusOriginalView()
    
    ///底部的view
    private lazy var bottomView: FHStatusBottomView = FHStatusBottomView()

}
